/*****************************************************************************/
/*                                                                           */
/*    Domino Operation System Kernel Module                                  */
/*                                                                           */
/*    Copyright (C) 2010 Laszlo Arvai                                        */
/*                                                                           */
/*    ------------------------------------------------------------------   */
/*    GPS UART Kernel Driver                                                 */
/*****************************************************************************/

#ifndef __drvGPS_h
#define __drvGPS_h

///////////////////////////////////////////////////////////////////////////////
// Includes
#include <krnlTypes.h>
#include <krnlString.h>
#include <krnlDateTime.h>
#include "drvIOConfig.h"

///////////////////////////////////////////////////////////////////////////////
// Const

// status codes
#define drvGPS_OK 0
#define drvGPS_NO_FIX 1
#define drvGPS_COMMUNICATION_ERROR 2

///////////////////////////////////////////////////////////////////////////////
// Types
typedef struct 
{
	// UTC time in ms
	dosByte Status;
	dosDateTime UTCDateTime;
	dosWord UTCMillisecond;
	dosInt32 Latitude;
	dosInt32 Longitude;
	dosInt32 Altitude;
	dosWord Speed;
	dosWord Course;
	dosByte SatellitesUsed;
	dosInt16 HDOP;
} drvGPSData;


///////////////////////////////////////////////////////////////////////////////
// Function prototypes

void drvGPSInit(void);
void drvGPSProcess(void);

// transmitter functions
//void drvGPSUARTSendCharacter( dosChar in_char );
void drvGPSUARTTransmitInterrupt(void);

// receiver functions
void drvGPSUARTReceiveInterrupt(dosChar in_char);

#endif
